package net.profo.infoplayas;

import java.util.ArrayList;
import java.util.List;


import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class MunicipioHandler extends DefaultHandler 
{
	private List<Municipio> municipios;
	private Municipio municipioActual;
	private StringBuilder sbTexto;
		
	public List<Municipio> getMunicipios()
	{
		return municipios;
	}
	
	@Override
	public void characters(char[] ch, int start, int length) throws SAXException
	{
		super.characters(ch, start, length);
		
		if(this.municipioActual != null)
		{
			sbTexto.append(ch, start, length);
		}
	}
	
	@Override
	public void endElement(String uri, String localName, String name) throws SAXException
	{
		super.endElement(uri, localName, name);
		
		if(this.municipioActual != null)
		{
			if(localName.equals("Pagina"))
			{
				municipioActual.setPagina(sbTexto.toString());
			}
			else if (localName.equals("Nombre"))
			{
				municipioActual.setNombre(sbTexto.toString());
			}
			else if(localName.equals("Municipio"))
			{
				municipios.add(municipioActual);
			}
			
			sbTexto.setLength(0);
		}
	}
	
	@Override
	public void startDocument() throws SAXException
	{
		super.startDocument();
		
		municipios = new ArrayList<Municipio>();
		sbTexto = new StringBuilder();
	}
	
	
	@Override
    public void startElement(String uri, String localName,
                   String name, Attributes attributes) throws SAXException {
 
        super.startElement(uri, localName, name, attributes);
 
        if (localName.equals("Municipio")) {
        	municipioActual = new Municipio();
        }
    }
}
